package cn.song.freight.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 复制策略数据传输对象
 *
 * @author SongRenShuo
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "复制策略数据")
public class StrategyCopyDTO {

    /**
     * 原策略ID
     */
    @NotNull(message = "策略ID不能为空")
    @ApiModelProperty(value = "原策略ID", required = true)
    private Long id;

    /**
     * 新策略名称
     */
    @ApiModelProperty(value = "新策略名称")
    @NotBlank(message = "新策略名称不能为空")
    private String newName;

    /**
     * 详细描述，解释策略的目的和使用场景
     * 帮助操作人员理解何时以及如何应用此策略
     */
    @ApiModelProperty(value = "新策略详细描述")
    private String description;

    /**
     * 操作人（如：admin, wangwu）
     */
    @ApiModelProperty(value = "操作人（如：admin, wangwu）")
    private String operator;

    public String getOperator() {
        return operator == null ? "admin" : operator;
    }
}
